package com.voxel.sense.infomsg.module.map.monitor.baseInfo;

import android.graphics.drawable.Drawable;

import com.amap.api.maps.AMap;
import com.amap.api.maps.model.Marker;
import com.example.com.common.app.BaseContract;
import com.voxel.sense.infomsg.data.bean.MakerInfoBean;

import cyy.example.com.facotry.model.api.response.MissionLocationEntity;
import cyy.example.com.facotry.model.api.response.StaffDetailsEntity;
import cyy.example.com.facotry.model.api.response.TaskDetailsInfoEntity;
import cyy.example.com.facotry.model.api.response.TaskInfoEntity;

import com.voxel.sense.infomsg.view.MenuBean;

import java.util.List;
import java.util.Map;

/**
 * 实时监控契约类
 * Created by ChenYiYao on 2018/3/12.
 */

public interface MonitorMapContract {
    interface Presenter extends BaseContract.Presenter {
        /**
         * 加载人员类型列表的数据
         */
        void doLoadStaffMenuData();


        /**
         * 加载marker弹窗的信息数据
         *
         * @param marker
         */
        void doLoadMarkerInfo(Marker marker);

        //获取任务的列表
        void getTaskList();

        void getLoadTaskData();
        /**
         * 获取当前marker窗口的id
         *
         * @return
         */
        String getMarkerInfoWindowId();


    }

    interface View extends BaseContract.View<Presenter> {
        /**
         * 获取地图操作实体
         */
        AMap getaMap();

        /**
         * 刷新列表
         * 跳转
         *
         * @param datas
         */
        void onLoadStaffMenuData(List<MenuBean> datas);
        void onRefreshView(String taskName, String timeEnd, int taskLevelPosition,
                           int taskTypePosition, List firm, List user,
                           String taskContent);

        void onLoadTaskList(List<MenuBean> datas);

        void loadDataComplete(List<MissionLocationEntity.BodyBean> data);
        /**
         * 添加地图的标记点marker
         *
         * @param type
         */
        void onAddMarker(List data, String type, Drawable icon);


        /**
         * 显示marker的info窗口
         *
         * @param data
         */
        void onShowMarkerFirmInfoWindow(MakerInfoBean data);

        void onShowMarkerStaffInfoWindow(StaffDetailsEntity data);


        /**
         * marker的icon加载完成调用
         *
         * @param map 装载不同marker的icon
         */
        void onLoadMakIconFinish(Map<String, Drawable> map);

        void onRefreshViewDialog(TaskDetailsInfoEntity.TaskBaseInfoVoBean taskBaseInfoVo);
    }

}
